#!/usr/bin/env python
# -*- coding: utf-8 -*-
# vim:fileencoding=utf-8
# vim:tabstop=4
#
# copyright (c) 2010 by The Codedrawer Team
#
# 成员
# xkhhdx(HD.Huo)	viking9345(C.Cai)	renxing225(X.Ren)
#
# Licensed under the Apache License, Version 2.0 (the "License")
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
# 代码来自：http://code.google.com/p/codedrawer/
#
#--- 更新记录 ---
#成员		时间			简述
#
#--- 计划列表 ---
#提出者		时间			是否解决	解决者	计划简述		解决简述
#


#################################################################
#
#   How-to:
#
#   需要修改的地方已经用一堆井字号标出来了
#
#

from core import *

class xx_code_render(code_render): #######这里修要修改#######################################
    """ 对 xx 代码进行标记 """ #######这里修要修改#######################################
    def prepare(self):
        """ 准备正则式、正则库等信息 """
        # 注释  #######这里修要修改 看看注释决定取舍#######################################
        self.regex_dict["comment"] = (	r'''(/\*[\s\S]*?\*/)''',						# C 风格的块注释
                                      	r'''(//.*(?=\n))|(//.*$)''',					# C++ 风格的行注释
                                      	r'''(#.*(?=\n))|(#.*$)''',						# Perl 风格的行注释
                                      	r"""((?:\'\')'(?:\.|(\\\')|[^\''\n]|)+''')""",	# python 三个单引号
                                      	r"""('(?:\.|(\\\')|[^\''\n]|)+')""")				# 单引号引起来的
        
        # 字符串 #######这里修要修改 看看注释决定取舍#######################################
        self.regex_dict["quoted_string"] = (	r'''((?:\"\")"(?:\.|(\\\")|[^\""\n]|)+""")''',	# python 三个双引号
                                            	r'''("(?:\.|(\\\")|[^\""\n]|)+")''',			# 双引号引起来的
                                            	r'''(&quot;(?:\.|(\\&quot;)|[^\n]|)+&quot;)''')	# 双引号引起来的

        # 关键字
        keyword_list = ( "function", "etc" ) #######这里修要修改#######################################
        # 数据类型
        data_type = ( "type1", "type2" ) #######这里修要修改#######################################

        self.regex_dict["keyword"] = r"(\b" + r"\b|\b".join(keyword_list) + r"\b|\b".join(data_type) + r"\b)"

        self.verifier_dict["spliter"] = re.compile( "|".join(self.regex_dict["comment"]) + r"|" + "|".join(self.regex_dict["quoted_string"]))
        self.verifier_dict["comment"] =  re.compile( "|".join(self.regex_dict["comment"]) )
        self.verifier_dict["quoted_string"] =  re.compile( "|".join(self.regex_dict["quoted_string"]) )
        self.verifier_dict["keyword"] = re.compile(self.regex_dict["keyword"])

